package com.whut.service;

import com.whut.v_dataMap.SummaryReport.Part3VO.*;
import com.whut.v_dataMap.SummaryReport.Part3VO.LevelProblemVO.LevelProblemListVO;
import com.whut.v_dataMap.SummaryReport.Part3VO.LevelProblemVO.RiskProblemNumVO;
import com.whut.v_dataMap.SummaryReport.Part3VO.LevelProblemVO.RiskpName4VO;
import com.whut.v_dataMap.SummaryReport.Part3VO.RiskDescriptionVO.RiskDescriptionTableVO;
import com.whut.v_dataMap.SummaryReport.Part2.projectInfoMap;
import com.whut.v_dataMap.SummaryReport.Part3VO.XMLVO.*;
import com.whut.v_dataMap.SummaryReport.Part4.SumMap;
import com.whut.v_dataMap.SummaryReport.Part4.System1Map;
import com.whut.v_dataMap.SummaryReport.Part4.TaskMap;
import com.whut.v_dataMap.SummaryReport.part4VO.MapTreeVO;

import java.util.List;
import java.util.Map;

/**
 * @author: liukang
 * @Description: 总报
 * @date: 2020/12/15 17:50
 */
public interface SummaryReportService {


    /**
     * @author: liukang
     * @Description: 根据委托方id和时间范围查询问题信息（分子公司),用于前端页面展示
     * @date: 2020/12/25 11:01
     */
    List<MapTreeVO> getTaskProblemTreeInfoByIdAndTime(Integer contractId, String startTime, String endTime);

    /**
     * @author: liukang
     * @Description: 根据委托方id和时间范围查询问题信息,用于前端页面展示
     * @date: 2020/12/25 11:01
     */
    List<MapTreeVO> getAllProblemTreeInfoByIdAndTime(Integer contractId, String startTime, String endTime);

    /**
     * @author: liukang
     * @Description: 根据前端选择的图片和Mkey更新pc表
     * @date: 2020/12/25 11:01
     */
    int updatePCBySelectedPic(Integer Mkey,String selectedPic);

    /**
     * @author: liukang
     * @Description: 重置图片选择
     * @date: 2020/12/25 11:02
     */
    int resetPCSelectedPic(Integer contractId, String startTime, String endTime);

    /**
     * @author: liukang
     * @Description: 基于前端选择过的图片生成第四部分的报告-问题分析模块（分子公司
     * @date: 2020/12/25 11:02
     */
    String generateTaskProblemReportInfoByIdAndTime(Integer contractId, String startTime, String endTime);

    /**
     * @author: liukang
     * @Description: 基于前端选择过的图片生成第四部分的报告-问题分析模块
     * @date: 2020/12/25 11:02
     */
    String generateAllProblemReportInfoByIdAndTime(Integer contractId, String startTime, String endTime);

    /**
     * @author: liukang
     * @Description: 生成第四部分的报告-问题分析模块（分子公司
     * @date: 2020/12/28 13:13
     */
    String generateTaskProblemReportInfoAll(Integer contractId, String startTime, String endTime);

    /**
     * @author: liukang
     * @Description: 生成第四部分的报告-问题分析模块
     * @date: 2020/12/28 13:13
     */
    String generateAllProblemReportInfoAll(Integer contractId, String startTime, String endTime);

    /**
     * @author: liukang
     * @Description: 生成封面
     * @date: 2021/1/15 21:10
     */
    String generateCoverReport(Integer contractId, String startTime, String endTime);

    /**
     * @author: liukang
     * @Description: 获取所有第一级检查
     * @date: 2021/2/2 21:46
     */
    List<Level1IdAndNameVO> getLevel1IdAndName(Integer contractId, String startTime, String endTime);

    /**
     * @author  汪琪瑞
     * @create  2021/1/28 下午 10:05
     * @desc  生成报告第一部分
     **/
    String generatePart1Report(Integer contractId, String startTime, String endTime, List<Double> amPoint);
    /**
     * @author： wenyihan
     * @description：生成第三部分基础数据
     * @date： 19:31 2021/1/27
    */
    List<ProjectListVO> getPart3BasicData(Integer contractId, String startTime, String endTime, Integer firstId);

    /**
     * @author： wenyihan
     * @description：返回分项排名表格，在前端展示
     * @date： 19:00 2021/1/30
     * @param： [contractId, startTime, endTime, firstId]
     * @return： com.whut.v_dataMap.SummaryReport.Part3VO.RankTableVO
    */
    RankTableVO getRankTableData(Integer contractId, String startTime, String endTime, Integer firstId);

    List<projectInfoMap> generateProjectInfo(Integer contractId, String startTime, String endTime);
    /**
     * @author  汪琪瑞
     * @create  2021/1/28 下午 10:05
     * @desc    生成报告第二部分
     **/
    String generatePart2Report(Integer contractId, String startTime, String endTime, List<Double> amPoint);
    /**
     * @author： wenyihan
     * @description：获取A\B\C类问题的结论,①riskBasicData：每项第四级对应的问题数量+换算后所占比例；②levelList：a/b/c类包含的第四级名称
     * @date： 13:15 2021/1/30
     * @param： [contractId, startTime, endTime, firstId]
     * @return： java.util.Map<java.lang.String,java.util.List>
    */
    Map<String, List> getLevelConclusion(Integer contractId, String startTime, String endTime, Integer firstId);

    /**
     * @author： wenyihan
     * @description：返回隐患分布表格
     * @date： 17:15 2021/1/31
     * @param： [contractId, startTime, endTime, firstId]
     * @return： java.util.List<com.whut.v_dataMap.SummaryReport.Part3VO.RiskDescriptionVO.RiskDescriptionTableVO>
     */
    List<RiskDescriptionTableVO> getRiskDescription(Integer contractId, String startTime, String endTime, Integer firstId);

    /**
     * @author： wenyihan
     * @description：list为从前端获取的数据
     * @date： 22:03 2021/2/4
     * @param： [contractId, startTime, endTime, evaluateSuggestionList, levelConclusionList, riskDescriptionList]
     * @return： java.lang.String
    */
    String getSummaryReportPart3(Integer contractId, String startTime, String endTime, ReportDataVO reportData);
}
